﻿using System;
using System.Collections.Generic;
using System.Collections;
using System.Linq;
using System.Text;

namespace ConsoleApplication
{
    class myArrayList
    {



        /// <summary>
        /// 遍历显示默认的 ArrayList 对象
        /// </summary>
        public static void ShowArray()
        {
            ArrayList arrList = ArrayGenerator();

            arrList.Add(new Point("additional", 10, 10));   //      ArrayList 可变长度数组。

            arrList.AddRange(PointGenerator());     //      AddRange() 方法。

            foreach (Point p in arrList)
            {
                Console.WriteLine(p.ToString());
            }
            Console.ReadKey();
        }

        /// <summary>
        /// 生成一个默认的包含Point[]集合的 ArrayList 对象
        /// </summary>
        /// <returns></returns>
        protected static ArrayList ArrayGenerator()
        {
            ArrayList arrList = new ArrayList();
            for (int i = 0; i < 10; i++)
            {
                Point p = new Point(i, i);
                p.Name = i.ToString();      //      给继承自基类的Name属性赋值。
                arrList.Add(p);
            }
            return arrList;
        }

        /// <summary>
        /// 生成一个默认的 Point[] 对象
        /// </summary>
        /// <returns></returns>
        protected static Point[] PointGenerator()
        {
            Point[] pArr = new Point[2];    //      生成包含2个项(Point 对象)的 Point[] 数组。
            int j = 10;
            for (int i = 0; i < pArr.Length; i++)
            {
                j += i;
                pArr[i] = new Point();
                pArr[i].Name = j.ToString();      //      给继承自基类的Name属性赋值。
                pArr[i].x = j;
                pArr[i].y = j;
            }
            return pArr;
        }

    }
}
